With the rapid development of an Internet service, network video traffic increases dramatically, and a server virtualization technology is more widely used in a data center to make full use of hardware resources. In this situation, usage of central processing unit (CPU) resources in transport control protocol (TCP)/Internet Protocol (IP) network protocol stack processing is getting higher and higher, which may even become a bottleneck of an entire server system. To reduce a CPU load and further improve the performance of the entire server system, network adapter manufacturers launch network adapters with an offload function in succession to reduce the usage of CPU resources in TCP/IP protocol stack processing by offloading partial work (such as TCP/IP checksum calculation and TCP/user datagram protocol (UDP) packet segmentation) of which a TCP/IP protocol stack originally takes charge to a network adapter for processing.
Currently, offload functions provided by a network adapter generally include TCP/IP checksum calculation, TCP/UDP fragmented packet reassembly, TCP segmentation offload, and the like, and all these offload functions depend on whether the network adapter is capable of correctly parsing a packet to be processed. Generally, the network adapter can support processing of a standard data packet, for example, a standard IP packet and an IP packet with a virtual local area network (VLAN) identifier. However, in a server virtualization situation, a proprietary protocol tag (Tag) is generally encapsulated in a packet to isolate network traffic. For an IP packet that includes the proprietary protocol Tag, the network adapter cannot correctly parse such an IP packet, which results in various offload misoperations. As a result, a large number of packets are lost in a network, and network transmission performance is affected.
In the prior art, a customized network adapter is used to provide a network adapter offload function for a specific proprietary protocol. However, a solution of customizing the network adapter features a poor scalability, and a lot of CPU resources still need to be occupied to process an IP packet of an unknown protocol.